package leetcode;

public class Day22 {
    public int maxProduct(int[] nums) {
        int n=nums.length;
        int[] g=new int[n+1];
        int[] j=new int[n+1];
        g[0]=1;
        j[0]=1;
        int max=Integer.MIN_VALUE;
        for(int i=1;i<=n;i++){
            if(nums[i-1]>0){
                g[i]=Math.max(nums[i-1],nums[i-1]*g[i-1]);
                j[i]=Math.min(nums[i-1],nums[i-1]*j[i-1]);
                if(g[i]>max){
                    max=g[i];
                }
            } else{
                g[i]=Math.max(nums[i-1],nums[i-1]*j[i-1]);
                j[i]=Math.min(nums[i-1],nums[i-1]*g[i-1]);
                if(g[i]>max){
                    max=g[i];
                }
            }
        }
        return max;
    }
}
